package com.balabala.gym_goods.dao;

import com.balabala.goods.pojo.dto.CartItemDTO;
import org.springframework.data.redis.core.BoundHashOperations;

import java.util.List;
import java.util.Map;

/**
 * @Author 何涛
 * @Date: 2023/05/07/ 16:20
 * @description
 */
public interface CartDao {
    /**
     * 获取用户购物车操作对象
     * @return
     */
    public BoundHashOperations getUserCartOptions();

    /**
     * 添加一个订单项到购物车
     * @param skuId
     * @param cartItemDTO
     */
    void addSkuToCart(Long skuId, CartItemDTO cartItemDTO);

    /**
     * 更新购物车的订单项
     * @param skuId
     * @param cartItemDTO
     */
    Boolean updateSkuToCart(Long skuId, CartItemDTO cartItemDTO);

    /**
     * 获取用户购物车集合
     * @return
     */
    List<CartItemDTO> getUserCartItemList();

    /**
     * 删除用户购物车缓存
     * @return
     */
    Boolean deleteUserCart();


    /**
     * 根据sku id 删除购物项
     * @param skuId
     * @return
     */
    Boolean deleteCartItemBySkuId(Long skuId);

    /**
     * 获取用户购物车map集合
     * @return
     */
    Map<Long, CartItemDTO> getUserCartEntries();

    /**
     * pi
     * @param userCartMap
     */
    void batchUpdate(Map<Long, CartItemDTO> userCartMap);
}
